#ifndef _POST_PROCESS_HPP
#define _POST_PROCESS_HPP

#include <map>
#include <vector>
#include <string>
#include <fstream>
#include <iostream>
#include <memory>
#include <string>
#include <gflags/gflags.h>
#include <glog/logging.h>
#include <opencv2/core.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/imgcodecs.hpp>
#include "utils.h"

std::map<int, std::string> LoadLabelName(std::string name_map_file);

void PostProcess(uint32_t *pth, uint32_t output_h, uint32_t output_w, const std::string image_name, const std::string output_dir, bool save_img);

const int colormap[257][3] = {
      {0,0,0},         
      {128,0,0},     
      {0,128,0},
      {128,128,0},
      {0,0,128},
      {128,0,128},
      {0,128,128},
      {128,128,128},
      {64,0,0},
      {192,0,0},
      {64,128,0},
      {192,128,0},
      {64,0,128},
      {192,0,128},
      {64,128,128},
      {192,128,128},
      {0,64,0},
      {128,64,0},
      {0,192,0},
      {128,192,0},
      {0,64,128},
      {128,64,128},
      {0,192,128},
      {128,192,128},
      {64,64,0},
      {192,64,0},
      {64,192,0},
      {192,192,0},
      {64,64,128},
      {192,64,128},
      {64,192,128},
      {192,192,128},
      {0,0,64},
      {128,0,64},
      {0,128,64},
      {128,128,64},
      {0,0,192},
      {128,0,192},
      {0,128,192},
      {128,128,192},
      {64,0,64},
      {192,0,64},
      {64,128,64},
      {192,128,64},
      {64,0,192},
      {192,0,192},
      {64,128,192},
      {192,128,192},
      {0,64,64},
      {128,64,64},
      {0,192,64},
      {128,192,64},
      {0,64,192},
      {128,64,192},
      {0,192,192},
      {128,192,192},
      {64,64,64},
      {192,64,64},
      {64,192,64},
      {192,192,64},
      {64,64,192},
      {192,64,192},
      {64,192,192},
      {192,192,192},
      {32,0,0},
      {160,0,0},
      {32,128,0},
      {160,128,0},
      {32,0,128},
      {160,0,128},
      {32,128,128},
      {160,128,128},
      {96,0,0},
      {224,0,0},
      {96,128,0},
      {224,128,0},
      {96,0,128},
      {224,0,128},
      {96,128,128},
      {224,128,128},
      {32,64,0},
      {160,64,0},
      {32,192,0},
      {160,192,0},
      {32,64,128},
      {160,64,128},
      {32,192,128},
      {160,192,128},
      {96,64,0},
      {224,64,0},
      {96,192,0},
      {224,192,0},
      {96,64,128},
      {224,64,128},
      {96,192,128},
      {224,192,128},
      {32,0,64},
      {160,0,64},
      {32,128,64},
      {160,128,64},
      {32,0,192},
      {160,0,192},
      {32,128,192},
      {160,128,192},
      {96,0,64},
      {224,0,64},
      {96,128,64},
      {224,128,64},
      {96,0,192},
      {224,0,192},
      {96,128,192},
      {224,128,192},
      {32,64,64},
      {160,64,64},
      {32,192,64},
      {160,192,64},
      {32,64,192},
      {160,64,192},
      {32,192,192},
      {160,192,192},
      {96,64,64},
      {224,64,64},
      {96,192,64},
      {224,192,64},
      {96,64,192},
      {224,64,192},
      {96,192,192},
      {224,192,192},
      {0,32,0},
      {128,32,0},
      {0,160,0},
      {128,160,0},
      {0,32,128},
      {128,32,128},
      {0,160,128},
      {128,160,128},
      {64,32,0},
      {192,32,0},
      {64,160,0},
      {192,160,0},
      {64,32,128},
      {192,32,128},
      {64,160,128},
      {192,160,128},
      {0,96,0},
      {128,96,0},
      {0,224,0},
      {128,224,0},
      {0,96,128},
      {128,96,128},
      {0,224,128},
      {128,224,128},
      {64,96,0},
      {192,96,0},
      {64,224,0},
      {192,224,0},
      {64,96,128},
      {192,96,128},
      {64,224,128},
      {192,224,128},
      {0,32,64},
      {128,32,64},
      {0,160,64},
      {128,160,64},
      {0,32,192},
      {128,32,192},
      {0,160,192},
      {128,160,192},
      {64,32,64},
      {192,32,64},
      {64,160,64},
      {192,160,64},
      {64,32,192},
      {192,32,192},
      {64,160,192},
      {192,160,192},
      {0,96,64},
      {128,96,64},
      {0,224,64},
      {128,224,64},
      {0,96,192},
      {128,96,192},
      {0,224,192},
      {128,224,192},
      {64,96,64},
      {192,96,64},
      {64,224,64},
      {192,224,64},
      {64,96,192},
      {192,96,192},
      {64,224,192},
      {192,224,192},
      {32,32,0},
      {160,32,0},
      {32,160,0},
      {160,160,0},
      {32,32,128},
      {160,32,128},
      {32,160,128},
      {160,160,128},
      {96,32,0},
      {224,32,0},
      {96,160,0},
      {224,160,0},
      {96,32,128},
      {224,32,128},
      {96,160,128},
      {224,160,128},
      {32,96,0},
      {160,96,0},
      {32,224,0},
      {160,224,0},
      {32,96,128},
      {160,96,128},
      {32,224,128},
      {160,224,128},
      {96,96,0},
      {224,96,0},
      {96,224,0},
      {224,224,0},
      {96,96,128},
      {224,96,128},
      {96,224,128},
      {224,224,128},
      {32,32,64},
      {160,32,64},
      {32,160,64},
      {160,160,64},
      {32,32,192},
      {160,32,192},
      {32,160,192},
      {160,160,192},
      {96,32,64},
      {224,32,64},
      {96,160,64},
      {224,160,64},
      {96,32,192},
      {224,32,192},
      {96,160,192},
      {224,160,192},
      {32,96,64},
      {160,96,64},
      {32,224,64},
      {160,224,64},
      {32,96,192},
      {160,96,192},
      {32,224,192},
      {160,224,192},
      {96,96,64},
      {224,96,64},
      {96,224,64},
      {224,224,64},
      {96,96,192},
      {224,96,192},
      {96,224,192},
      {224,224,192},
};
#endif //_POST_PROCESS_HPP
